/**
 * @author lmq
 */
var MixSmart = null;
+function($) {
	
	MixSmart = new function(){}
	
	/**
	 * post提交数据
	 * @param uri
	 * @param params
	 * @param target
	 * @param refreshUri
	 */
	MixSmart.postData = function(uri,params,target,refreshUri) {
		utils.waitLoading("正在处理数据...");
		$.post(uri,params,function(data){
			utils.closeWaitLoading();
			var output = $.parseJSON(data);
			if(output.result == '1') {
				if(!utils.isEmpty(refreshUri)) {
					if(!utils.isEmpty(target) && target != mainTag) {
						this.loadUri(target, refreshUri, true, false);
					} else {
						this.loadLocation(refreshUri);
					}
				}
				utils.showSuccessMsg(output.msg);
			} else {
				utils.showFailMsg(output.msg);
			}
		});
	}

	/**
	 * 弹出窗口提交数据
	 * @param uri
	 * @param param
	 * @param fun
	 * @param $this
	 * @param $form
	 * @param isObj $this和$form传进来的参数是否为对象;默认为true
	 */
	MixSmart.submitDialogData = function(uri,param,fun,$this,$form,isObj) {
		if(utils.isNotEmpty(uri)) {
		    utils.waitLoading("正在提交数据...");
		    $.post(uri,param,function(data){
		    	utils.closeWaitLoading();
		    	var output = $.parseJSON(data);
				var jqGridId = null;
				var isIframe = false;
				if(typeof($this) !== 'string') {
					jqGridId = $this.data("jqgrid-id");
					var isIframeStr = $this.data("is-iframe");
					isIframe = (isIframeStr=='yes')?true:false;
				}
				if(output.result == 1) {
					utils.showSuccessMsg(output.msg);
					if(!utils.isEmpty(fun) && typeof(eval(fun)) === 'function') {
						fun = eval(fun);
						fun();
					} else if(!utils.isEmpty(jqGridId) || isIframe){
						if(!isIframe && !jqGridId.startWith("#")) {
							jqGridId = "#"+jqGridId;
						}
						if(isIframe) {
							window.frames["mixIframeContent"].refreshJqGrid();
						} else {
							$(jqGridId).trigger("reloadGrid");
						}
					} else {
						if(utils.isEmpty(isObj)) 
							isObj = true;
						else
							isObj = (isObj==true)?true:false;
						var refreshUri = '';
						var target = '';
						if(!isObj) {
							refreshUri = $this;
							target = $form;
						} else {
							refreshUri = $this.data("refresh-uri");
							target = $form.attr("target");
						}
						
						if(!utils.isEmpty(refreshUri)) {
							if(!utils.isEmpty(target) && mainTag != target) {
								this.loadUri(target, refreshUri, true);
							} else {
								this.loadLocation(refreshUri);
							}
						}
					}
					BootstrapDialogUtil.close();
				} else {
					utils.showFailMsg(output.msg);
				}
				data = null;
		    });
	    } else {
	    	utils.showFailMsg("提交URL未指定！");
	    }
	};

	/**
	 * jqGrid请求提交数据
	 * @param uri 请求URLI
	 * @param param 参数
	 * @param jqGridId jqGrid对应的ID
	 */
	MixSmart.jqGridRequest = function(uri,param,jqGridId) {
		if(utils.isNotEmpty(uri) && utils.isNotEmpty(jqGridId)) {
			utils.waitLoading("正在提交数据...");
		    $.post(uri,param,function(data){
		    	utils.closeWaitLoading();
		    	var output = $.parseJSON(data);
				if(output.result == 1) {
					utils.showSuccessMsg(output.msg);
					if(!jqGridId.startWith("#")) {
						jqGridId = "#"+jqGridId;
					}
					$(jqGridId).trigger("reloadGrid");
				} else {
					utils.showFailMsg(output.msg);
				}
		    });
		}
	}


	/**
	 * 选择触发事件
	 * @param type
	 * @param uri
	 * @param target
	 */
	MixSmart.selectedEvent = function(type,uri,target) {
		if(!utils.isEmpty(type)) {
			switch (type) {
			case 'open_to_target':
				if(!utils.isEmpty(uri)) {
					if(!utils.isEmpty(target) && mainTag != target) {
						this.loadUri(target, uri, true, true);
					} else {
						this.loadLocation(uri);
					}
				}
				break;
			default:
				break;
			}
		}
	}

	/**
	 * 获取复选框的值
	 * @param divTag 标识,如class或ID值,也可以是一个对象
	 * @param returnType 返回值类型 0--数组,1--字符串(多个值直接用逗号分隔开);默认返回数组
	 */
	MixSmart.getCheckboxValues = function(divTag,returnType) {
		var $obj = null;
		var values = null;
		if(!utils.isEmpty(divTag)) {
			$obj = (typeof(divTag)==='string'?$(divTag):divTag);
			var isArray = (!utils.isEmpty(returnType) && returnType=='1')?false:true;
			values = isArray?(new Array()):'';
			$obj.find("input[type='checkbox']:checked").each(function(){
				var value = $(this).val();
				if(!utils.isEmpty(value)) {
					isArray?(values.push(value)):(values += value+",");
				}
			});
			if(!isArray && values != '') {
				values = values.substring(0,values.length-1);
			}
		}
		return values;
	}


	/**
	 * 检测权限
	 * @param uri
	 * @param authId
	 * @returns {Boolean}
	 */
	MixSmart.checkAuth = function(uri,authId) {
		var is = false;
		if(!utils.isEmpty(uri) && !utils.isEmpty(authId)) {
			var url = "auth/checkAuth.json?uri="+encodeURIComponent(uri)+"&authId="+authId;
			$.ajax({
				url:url,
				type:"GET",
				async:false,
				dataType:"json",
				timeout:1000*10,
				success:function(data) {
					var output = data;//$.parseJSON(data.output);
					if(output.result=='1') {
						is = true;
					}
				}
			});
		}
		return is;
	}

	/**
	 * 判断是否登录
	 * @param success 已登录的回调函数
	 * @param fail  未登录的回调函数;当该值为null或未定义时，默认刷新页面
	 * 
	 */
	MixSmart.isLogin = function(success,fail) {
		if(!utils.isEmpty(success) && typeof(success) === 'function') {
			//判断是否登录
			$.get("user/islogin.do",function(data){
				if(data.result=='1') {
					//登录成功后，执行
					success();
				} else {
					//未登录，执行
					if(!utils.isEmpty(fail) && typeof(success) === 'function') {
						fail();
					} else {
						location.reload();
					}
				}
			});
		}
	}

	/**
	 * 加载到当前主页面
	 * @param url URL地址
	 */
	MixSmart.loadLocation = function(url) {
		utils.loadUrl2IFrame(this.mainTag, url, true, true);
	}

	/**
	 * 加载URL到指定位置
	 * @param target 指定加载位置
	 * @param url URL地址
	 * @param isLoadProcess 是否有加载进度条
	 * @param isCheckLogin  是否需要登录检测
	 */
	MixSmart.loadUri = function(target, url, isLoadProcess, isCheckLogin) {
		utils.loadUrl(target, url, isLoadProcess, isCheckLogin);
	}

	/**
	 * 页面主体布局
	 */
	MixSmart.layout = function() {
		//设置菜单高度
		var mixMainHeight = LayoutUtils.mainHeight();
		$(LayoutUtils.MAIN_ID_TAG).height(mixMainHeight);
		//var $menuNav = $(LayoutUtils.MENU_CLASS_TAG+" .sidebar-nav");
		//var menuH = mixMainHeight - $(LayoutUtils.MENU_CLASS_TAG+" .mix-nav-menu-title").outerHeight(true);
		//$menuNav.height(menuH);
		//$menuNav.css({"overflow":"auto"});
	}
}(jQuery);

